Я понимаю, что это старый вопрос, но у меня был тот же вопрос, и я предложил другой (более короткий) ответ. Примечание: это может работать только для MS SQL Server, который поддерживает ISNULL (expr, замена).
SELECT column1 FROM table1
WHERE ISNULL(column2,'') = ISNULL(@param,'')
Это также предполагает, что вы обрабатываете NULL и пустые строки одинаково.