Yeah, I'd bet you are right - rules run before code, and while I won't claim to understand the mechanism InfoPath is using to get that query filter value, I'd assume it just isn't present when your form load rules run.
As to a work around - that may be tough... But perhaps you could set your rule on the field you are setting to yes? That is, the parameter changes the field, and then you logic executes?