Mũ = standard Northern. Nón = standard Southern. It gets confusing in between especially a word like a (baseball) cap which is mũ lưỡi trai in the North but nón kết in the South and also known as mũ kết and many other regional variations in between.
just tested it an it accepted "tôi đội mũ" without cái but required "cái" with "nón". Any reason for that?
Either with or without "cái" is fine. It's all about the context: if you are referring to a specific hat/cap, then you should use classifier (this context is rare). So most of the time, you don't need.