Tienes un error básico: Las horas se deben almacenar como TIME y su rango es entre 00:00:00 y 23:59:59, por lo que no tiene ningún sentido ni utilidad ponerles AM o PM. No estás usando SQL Server. Como consecuencia, el BETWEEN que pretentes hacer no te funcionará porque no está evaluando las horas de los CONCAT() como horas, sino como cadenas de texto, y deben ser valores escalares.
Para que funcione, debes obtener algo como:
Desde el punto de vista lógico, esta consulta sólo te devolverá datos si la ejecutas en el horario del examen. SI la haces correr antes o después, no servirá. No te dará registros.
Finalmente: No cuelgues post propios de temas ajenos para hacer preguntas propias,
ni aún cuando las preguntas tengan alguna relación. En los foros, eso se considera un acto de falta de cortesía y mala educación.
Corresponde que abras un tema propio.
Tampoco resucites post antiguos. Eso puede hacer que los moderadores te lo cierren y nunca obtengas respuestas (no lo hice porque no modero este foro), ya que viola reglas expresas de las Políticas de Uso.
Saludos.