Hay más de un error...
1) Un SP no puede contener una consulta sin asignar resultados a variables, si no es la última linea del body. Y eso sólo tiene sentido si la consulta es el resultado esperado en pantalla, o la salida de datos que se tomará desde un programa.
2) A tu IF() le falta la condición de FALSE, por lo que está mal escrito.
3) No estás cerrando la linea de ese select con el terminador de sentencias, por lo que ni siquiera debe estar compilando.
4) Ese script sólo podría cargarse desde una aplicación. DE pretender hacerlo desde consola de MySQL fallará, y si lo haces desde phpMyadmin también, a menos que determines un delimiter distinto.
Para compilar en consola de MySQL:
Código MySQL:
Ver originalDELIMITER $$
SELECT (IF((numero_vaucher
= '' OR numero_vaucher
IS NULL) AND codigo_estatus_reserva
= 2), hora_reserva
, 'Aca va la salida por FALSE')
UPDATE crb_reservacion
WHERE codigo_estatus_reserva
= 4;
DELIMITER ;
Aclaremos una cosa,
este código no garantiza que funcione bien, solo no debería dar error al compilar. No lo garantiza, porque a mi entender está mal pensado, ya que la consulta que pones devolverá múltiples registros, por lo que el INTO no funcionará, y el UPDATE está actualizando
todos los registros que existan con esa condición, lo que a mi entender es ilógico.