@variables no son DECLARED .
O bien:
DECLARE user_same BOOLEAN;
SELECT 1 INTO user_same WHERE ...
o
SELECT @user_same := 1 WHERE ...
Mejor aún, esto evita la necesidad de la variable.
IF (EXISTS SELECT * FROM ...)
Además, no use la construcción IN ( SELECT ... ); por lo general, es mejor usar WHERE EXISTS ( SELECT * FROM ... ) o JOIN ... ON ... .
(Puede haber más problemas después de solucionarlos).