I'm just curious to know, why do we say "I am in a good mood" not "I am in good mood"? Is there any grammatical rule for that?
Folks are discussing "a good mood" versus "good spirits" and I think that points to the answer. It's the fact that 'spirits' is plural.
It's the same as "I'm with a good friend" versus "I'm with good friends".
I believe the reason why one uses the determiner 'a' is without it your sentence becomes grammatically incorrect. In the phrase 'in good spirits' one uses the undetermined plural which in English doesn't have an article. In other words the sense of the phrase can be rewritten as 'in any good spirits', not 'in certain good spirits'. This the same reason why you say 'in a good mood', not 'in the good mood'. 'In fine fiddle' was grammatically misused by the lower class of the past to such an extent it became a saying which is used until today, or at least that is my theory. Everything I wrote has no evidence to support it and is only a linguistical theory. I hope this helps you.
I am in good mood would really be grammatically wrong because it lacks a determiner. Determiner, which is often describe as demonstrative and possessive adjectives, often serves as a distinction. For more information regarding the determiner kindly click here.