Es extraño, pero la consulta no maneja muy bien el valor nulo. Cuando cambié la consulta a:
Query query = getSession().createQuery("from Car as c where " +
"c.carModel = ? AND c.carMake is null").setParameter(0, carModel);
funciona bien ya que DAO necesita consultar la marca como NULL. Entonces, si no es nulo, necesito tener dos conjuntos de consultas, uno que esté codificado para seleccionar nulo como se indicó anteriormente, otro para setParam (1, carMake).
Extraño, pero creo que esto funciona.