As far I understood you want to check multiple in multiple, i.e. if you have options 1,2,3,4,5 defined in your page type and your query string gives you lets say 2,5. You want to get all the pages where either 2 or 5 or both are present. you need to transform your query string into WHERE:
'|' + multiChoiceField + '|' LIKE '%|2|%' OR
'|' + multiChoiceField + '|' LIKE '%|5|%'
It would be easier to create a custom macro and generate this WHERE in C#.
Macro could be a bit hard to read but possible, for example if your query string parameter is categoryid and field name multiChoiceField
{%qs = QueryString.categoryid.Split(",", true); qs.Transform(" '|' + multiChoiceField + '|' LIKE '%|{#qs[DataItemIndex]#}|%' {#(DataItemIndex != DataItemCount-1)? \"OR\": \"\"#}")|(identity)GlobalAdministrator%}