Setting `GLOBIGNORE` has no influence on `ls`, and the `ls` manual doesn't mention `GLOBIGNORE`, because `ls` doesn't care about `GLOBIGNORE`. It's a feature of bash only, which makes it omit some files in glob patterns.
With `echo .i*`, bash is listing the files, so `GLOBIGNORE` kicks in. With `ls -a`, `ls` is listing the files, so `GLOBIGNORE` is irrelevant.
GNU `ls` has a similar feature: you can pass a pattern to ignore as a command line option.
ls -a -I .ignoramus