Why evaluates "IS NULL" in SSMS interactive mode to "TRUE" but the same statement being executed in a SP to "FALSE"?
Initialize @OUT__USER_ID with NULL, since it is probably being set to a non-null value earlier in your script somewhere.