Bingo! I get it: '(#i)zzz' returns nothing to 'ls' and just as you say, I end up with the directory. Whereas 'zzz' returns 'zzz' to 'ls' which it dutifully reports as not existing, and because it's not a glob, 'nullglob' doesn't interfere. Makes me wonder ... would 'nullfile' be a thing? Same logic but pertaining to files.
So what happens if you run ls with no arguments? It displays the current directory. And if you specify the -d option telling it to list directories themselves instead of their contents, that looks like ".".
Yeah, I do want an 'ls' listing, my wrapper just massages the way it works and how it displays:
Really, I don't know why you're using ls to play with globs; it just confuses the issue. Just use echo to see what's there. You only need to pass the names to ls if you want more information than that the files exist, like whether it's a directory or how big it is or the permissions or something.