Could you give us the output of the following commands?
cd <dir which not work with ls>
echo *
ls
Otherwise, I've never encountered this error before. However, I don't use the default commands. I recompiled all versions of GNU coreutils, and other commands (grep, sed, awk, etc) and Bash and change my PATH.
If you're interested and if nobody gives you a direct solution to solve the problem, you could inform you on it (I used brew and macports to do that. You can read this topic for example).