Altium 18 PCB Filter Select X *except* if Y
I will look for an answer using filter queries when I am in front of Altium 18. currently I have Altium 15 available, which doesn't have the function HasParameterValue(), but does have HasParameter(). I have found that you can use 

IsPart and not (HasParameter('Value','10k') or HasParameter('Value','1k'))

to achieve a similar result, but I don't know if this will hold in Altium 18, since the Altium 15 equivalent of your example filter: 

HasParameterValue('Value','10k') and HasParameterValue('Value','0R')


appears to be or instead of and:

HasParameter('Value','10k') or HasParameter('Value','0R')


However, in any recent version of Altium you can use "find similar objects" which is very powerful.

the quickest method since you already have a query which selects your unwanted parts:


run the query to select your 0603 and 0402 parts
right click on any selected part and choose "find similar objects"
change the "selected" attribute from "any" to "different" (last row in "graphical")
set the scope: in Altium 18, you get "current project/current document/open documents" before 18, you only get "current document/open documents"
make sure "clear existing" and "select matching" are both ticked. 


when you run this it will invert the selection. you may want to narrow down the objects by setting component type from "any" to "same", object type=part should be set to "same" by default. 

I will update this on Monday if I find a query based solution