Hola Buenas Tardes, te comento las pruebas que hice. Crree una tabla llamada HORARIO en MySQL con dos campos uno DateTime y el Otro de Tipo TIME, Hice las pruebas que pusiste en el foro, y me arrojo estos resultados. Si trabajas con la variable del tipo DATETIME te arroja cero 00:00:00 o cualquiera, cuando lo hice con la TIME me dio tu NULL. Ya que es del tipo time no se usa la funcion TIME() ya que es time. Entonces lo use directo
Código SQL
[-]SELECT TIME_FORMAT( Hora_ini2 - NOW() , '%H:%i:%s') AS diferencia , Hora_ini2 - TIME(NOW()), Hora_ini1
FROM Horario
Y funciono OK. Espero que te sirva. Saludos