Filter a view by a value being absent from a multiple value field
You could use hook_views_query_alter() to modify SQL query.

/**
 * Implements hook_views_query_alter().
 */
function example_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
  if ($view-&gt;id() == 'discussions') {
    // Exclude discussions the current logged user has participated in.
    $uid = Drupal::currentUser()-&gt;id();
    $nids = Drupal::entityQuery('node')
      -&gt;condition('type', 'discussion')
      -&gt;condition('field_participants', $uid)
      -&gt;execute();
    $query-&gt;addWhere(0, 'nid', $nids, 'NOT IN');
  }
}


In the example above we are getting ID's of excluded nodes using entity field query and then them to NOT IN condtion.

The resulting SQL query will be as follows:

SELECT node_field_data.created AS node_field_data_created, node_field_data.nid AS nid
FROM 
{node_field_data} node_field_data
WHERE (nid NOT IN ('1', '2', '3')) AND (node_field_data.type IN ('discussion'))
ORDER BY node_field_data_created DESC


Alternative way would be using JOIN with extra conditions:

/**
 * Implements hook_views_query_alter().
 */
function example_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
  if ($view-&gt;id() == 'discussions') {
    // Exclude discussions the current logged user has participated in.
    $uid = Drupal::currentUser()-&gt;id();  
    $definition = [
      'table' =&gt; 'node__field_participants',
      'field' =&gt; 'entity_id',
      'left_table' =&gt; 'node_field_data',
      'left_field' =&gt; 'nid',
      'extra' =&gt; [
        0 =&gt; [
          'field' =&gt; 'field_participants_target_id',
          'value' =&gt; $uid,
        ],
      ],
    ];
    $join = Drupal::service('plugin.manager.views.join')-&gt;createInstance('standard', $definition);
    $query-&gt;addRelationship('participants', $join, 'node');
    $query-&gt;addWhere(0, 'field_participants_target_id', NULL, 'IS NULL');
  }
}


The generated SQL query:

SELECT node_field_data.created AS node_field_data_created, node_field_data.nid AS nid
FROM 
{node_field_data} node_field_data
LEFT JOIN {node__field_participants} participants ON node_field_data.nid = participants.entity_id AND participants.field_participants_target_id = '1'
WHERE (field_participants_target_id IS NULL) AND (node_field_data.type IN ('discussion'))
ORDER BY node_field_data_created DESC


The view itself becomes quite simple. No need of contextual argument and aggregation.