Your filter is OK, but that filter says that the player saw the flop so any stat where the preflop action was to fold will always be zero.
If you're only interested in preflop then there isn't a simple filter for "in or out of position" because it isn't as simple as that preflop - you maybe out of position preflop but in position after the flop (e.g. button vs big blind).
It can be done with an expression filter in
My Reports but you would need to decide whether the blinds are in or out of position for your purposes.
You can use an expression filter like this, for example:
char_length(cash_hand_summary.str_aggressors_p) >= 4 and substring(cash_hand_summary.str_actors_p from 3 for 1)::int < substring(cash_hand_summary.str_actors_p from 4 for 1)::int
This says that the position of the 3bettor is less than the position of the 4bettor (ie. closer to the button).
(Note that you do need the first part of this expression, to test that there are at least 4 aggressors or you will get query errors.)
Check out
this thread for an explanation of the aggressors string.