Programmatically set ‘meta_query’ for filter

  1. A meta_query has to be an array of arrays. You only have an array.
  2. A filter needs to return information. Yours doesn’t.
  3. Of course, parse_query is an action not a filter, despite your use of add_filter. Use add_action instead.
  4. I would use pre_get_posts instead of parse_query. It is the next
    hook that fires after parse_query (check the source) and your code works more or less as expected if you use that hook, assuming the change mentioned in item #1.