Completely untested, just what I thought made sense by checking out [`add_where`](http://drupalcontrib.org/api/drupal/contributions%21views%21plugins%21views_plugin_query_default.inc/function/views_plugin_query_default%3A%3Aadd_where/7) and [`set_where_group`](http://drupalcontrib.org/api/drupal/contributions%21views%21plugins%21views_plugin_query.inc/function/views_plugin_query%3A%3Aset_where_group/7).

I'm assuming Views is ok with a _where group_ with a single item (just cos it makes the code a little tidier imho) - if not it's easy to modify.

    $new_group = $this->query->set_where_group('OR', NULL, 'where');
    $not_in = ($this->operator != '=');
    $value = vms_get_current_mlid();
    $this->query->add_where(
      $new_group,
      $this->real_field,
      $value,
      $this->operator = $not_in ? 'NOT IN' : 'IN'
    );

    if ($not_in) {
      $this->query->add_where(
        $new_group,
        $this->real_field,
        $value,
        'IS NULL'
      );
    }