Este es mi código simplificado para definir el sabor, incluye solución al problema de collations diferentes y manejo del error NOT FOUND, en caso de ingresar un código incorrecto:
CREATE DEFINER=`root`@`localhost` PROCEDURE `define_sabor_mejorado`(vcodigo VARCHAR(20))
BEGIN
DECLARE vsabor VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_spanish_ci;
DECLARE EXIT HANDLER FOR NOT FOUND
BEGIN
SELECT 'Error: Código no existe' AS resultado;
END;
SELECT SABOR INTO vsabor
FROM tabla_de_productos
WHERE CODIGO_DEL_PRODUCTO = vcodigo COLLATE utf8mb4_spanish_ci;
CASE
WHEN vsabor IN ('Maracuyá', 'Limón', 'Frutilla', 'Uva') THEN
SELECT 'Muy Rico';
WHEN vsabor IN ('Sandía', 'Mango') THEN
SELECT 'Normal';
ELSE
SELECT 'Jugos comunes';
END CASE;
END