>No cursor is returned, not even an empty one. Swapping out the variable with the string encased in quotes returns the correct result set.
That means there was an error somewhere.
Right after firing the variable version, do AERROR() and see what's in there.
Insanity: Doing the same thing over and over and expecting different results.