1. He had a slight headache.

2. He had a light headache.
3. He had a little headache.
4. He had a bad headache.
5. He had a severe headache.
6. He had a terrible headache.
7. He had the flu.
8. He had a flu.
9. He had flu.

(Which ones are right? Can we omit 'a' before 'headache'? Is 'bad cold' the same as 'the flu'?)

These are correct: 1, 3, 4, 5, 6, 7.

I think we always use "a" before headache.

A bad cold is not the same as the flu. A cold usually has a runny or stopped up nose and a cough. The flu usually has aches and sometimes an upset stomach.