LC_ALL --> should be left empty.
This environment variable can be changed by programs.
So can any environment variable. But if it is changed by a program it overrides all of the others, so the fact you've set them doesn't matter.
e.g., I have LC_COLLATE set to C (since I like UPPER sorted before lower) but en_GB does caseless sorting, so:
[mysys]: echo $LC_ALL
[mysys]: echo $LC_COLLATE
C
[mysys]: /bin/ls
UPPER lower
[mysys]: LC_ALL=en_GB /bin/ls
lower UPPER