Jajajajajaja, era un problema de sintaxis. Aqui esta por si alguien ha tenido el mismo error. Solamente era el SET era al final, no al principio.
Código MySQL:
Ver originalON respuestas.hora
BETWEEN programa.hora_inicio
AND programa.hora_final
AND programa.estado
= 1 ON canal_local.nombre_canal
= respuestas.codigo_canal
AND programa.canal
= canal_local.numero_canal
SET respuestas.id_programa
=programa.id_programa