>> "is there a way to code the parameter when it can't find the form value it uses null as opposed to the form value?"
You'd need to switch to using a function as your parameter value in this instance.
The function could accept a Form expression passed as parameters or a string formated expression (but *not* as an actual form expression of you'll encounter exactly the same behaviour as the expression service attempts to resolve it for you!)
For example - a simplistic example originally posted elsewhere.
Your query can reference the function passing the form name and control as arguments.
e.g.
SELECT * FROM TableName WHERE FieldName = fOptionalParam("MyForm", "MyControl")
I'll voice the caveat this time though lol.
If Null is returned - that will see no results returned (as your field value can never equal Null).
That's how I'd want to see it work anyway personally - but just so you know.