I've found that this is expected behavior. Preview doesn't work for a query that contains a parameter because, even if you've assigned a value to the global variable, that value isn't passed to the parameter in the Transform Data task until the package is executed.
What I usually do is replace the '?' with a valid hard-coded value to check the data with preview, then change back to '?' after I'm satisfied that the query works properly.