Hi J.P.,
The (NULL) thing is a bit of a cop-out on my part since I, too, couldn't figure out how to properly represent the empty set. I'd be okay with just rigging :in and :not-in to check their rhs for nil and expand to a boolean — people who do :null in {} are just asking for it — but if you come up with a better approach let me know. Have you investigated how do other SQL-generation engines deal with this icky corner case?
Best, Marijn