Shot in the dark here, but are you sure you enabled the extglob shell option? The paragraph above the list of extended file globbing (all the ?(), *(), +(), @(), and !() business) says that those extended pattern matching operators only work if extglob is enabled using the shopt builtin command. To see a list of what your shell has enabled, execute shopt
with no arguments. Check for extglob, and it should say either Off or On.
Another way to do what you're after without messing with shopt, is good old grep:
ls *2004* | grep -v ".bz2"