Gracias a todos los foreros por su colaboracion, de todas las respuesta saque un poco y logre el resultado final, y al parecer quedo perfecto, lo probe con todos los casos posibles y hasta los momentos funciono bien.
Aqui les dejo el query definitivo para consultar por rango de fechas:
select a.id_usuario, a.nombre_usuario
from mit.mit_usuarios a
where a.id_usuario not in
(select DISTINCT(b.id_usuario) from mit.mit_itinerario_usuarios b
where (fecha_hora_inicio <= '09:30:00' AND fecha_hora_fin >= '09:30:00')
OR (fecha_hora_inicio <= '11:15:00' AND fecha_hora_fin >= '11:15:00')
OR (fecha_hora_inicio >= '09:30:00' AND fecha_hora_fin <= '11:15:00'))