@variables não são DECLARED . Ou:
DECLARE user_same BOOLEAN;
SELECT 1 INTO user_same WHERE ...
ou
SELECT @user_same := 1 WHERE ...
Melhor ainda, isso evita a necessidade da variável.
IF (EXISTS SELECT * FROM ...)
Além disso, não use a construção
IN ( SELECT ... ); geralmente é melhor usar WHERE EXISTS ( SELECT * FROM ... ) ou JOIN ... ON ... . (Pode haver mais problemas depois de corrigi-los.)