esse é o comportamento correto.
se você definir @
item1
para um valor a expressão abaixo será verdadeira IF (@item1 IS NOT NULL) OR (LEN(@item1) > 0)
De qualquer forma no SQL Server não existe essa função, mas você pode criar a sua própria:
CREATE FUNCTION dbo.IsNullOrEmpty(@x varchar(max)) returns bit as
BEGIN
IF @SomeVarcharParm IS NOT NULL AND LEN(@SomeVarcharParm) > 0
RETURN 0
ELSE
RETURN 1
END