Debe utilizar SELECT ... INTO
SELECT
...
INTO var_name [, var_name]]
en lugar de set
para asignar el resultado de un SELECT a una variable. Así que esto debería hacerlo:
SELECT CASE
WHEN @[email protected] THEN "emp"
WHEN @vgls>@lgls THEN "loc"
WHEN @vgls<@lgls THEN "vis" END
INTO @st;