Okay, I have it working but only after quite a bit of work.
The above suggestions didn't work, all of them did the same thing that my code did previously: they didn't return records with NULL values.
I left some information out of my origonal question that may have affected your responses, though. (I didn't actually think about this until rpoole's comment suggested going into SQL view: First, I have two tables in a Left Join structure. Second, I have "Total" turned on and most of my fields are Grouped. Because of this, Access is using HAVING clauses instead of WHERE clauses. I'm not familiar enough with Access to fully understand the ramifications of this... but perhaps you do.
So, my solution is to use expressions and critieria to filter things out that I don't want, rather than using WHERE conditions to filter things in that I do want. (Did that make sense?)
For example, I have the following expression added to my query and hidden:
[FSearch] is the form.
[CRField] is the field on the form.
[CR] is the column in the table.
IIf(IsNull([Forms]![FSearch]![CRField]),[CR] Like "*" Or [CR] Is Null,[Forms]![FSearch]![CRField] Like [CR])
Then I have the criteria as <>False
By adding one of these for each field that I am filtering by, my query is incredibly ugly. But, it works perfectly whether or not anything is entered into each of the 12 search boxes on my form.