As duas palavras - haviam e havia - existem na língua portuguesa e estão corretas. Ambas são formas conjugadas do verbo haver no pretérito imperfeito do indicativo. Estão, contudo, conjugadas em diferentes pessoas.
Havia está na 3.ª pessoa do singular.
Haviam está na 3.ª pessoa do plural.
Pretérito imperfeito do indicativo:
(Eu) havia
(Tu) havias
(Ele) havia
(Nós) havíamos
(Vós) havíeis
(Eles) haviam
O verbo haver é usado principalmente com significado de ter ou existir. Contudo, pode se referir também ao ato de ter existência, acontecer, estar presente, decorrer, fazer, recuperar, julgar, comportar-se e entender-se.
O verbo haver é um verbo irregular e complexo, com particularidades em sua conjugação.
Quando o verbo haver se apresenta como verbo impessoal, sem sujeito, com significado de existir, deverá ser conjugado apenas na 3.ª pessoa do singular.
Exemplos com havia:
Quando o verbo haver se apresenta como verbo auxiliar, com significado equivalente a ter, poderá ser conjugado em todas as pessoas.
Exemplos com havia e haviam:
Nota: O verbo haver tem sua origem na palavra latina habere, devendo assim ser escrito sempre com h.