@variables nejsou DECLARED .
Buď:
DECLARE user_same BOOLEAN;
SELECT 1 INTO user_same WHERE ...
nebo
SELECT @user_same := 1 WHERE ...
A co je ještě lepší, vyhnete se tak potřebě proměnné.
IF (EXISTS SELECT * FROM ...)
Také nepoužívejte konstrukci IN ( SELECT ... ); obvykle je lepší použít WHERE EXISTS ( SELECT * FROM ... ) nebo JOIN ... ON ... .
(Po opravě mohou nastat další problémy.)