What you intend to do is now possible using the variables that QGIS creates when you add an algorithm to the model in newer QGIS versions. You can now use the variable from a previous processing step, such as @name_of_processing_step_OUTPUT:
aggregate(@name_of_processing_step_OUTPUT,'collect',$geometry)
In your case, the output of Feature Filter is a layer and to use it in the expression with aggregate(), you have to get the layer's name. For this, use the function layer_property().
I created a simple model based on your's: it takes an input (point layer with 100 features), then in the model uses Feature Filter to filter $id < 50 and then only for the filtered features (=algorithm output) creates a new string (text) field id_new with the aggregated id values (just for demonstration purpose).
To do so, in the field calculator algorithm, I set the Input layer to Algorithm Output and use the output from algorithm "Feature Filter". The expression to use looks like this:
array_to_string (
aggregate (
layer_property (@Feature_filter_OUTPUT_, 'name'),
'array_agg',
"id"
)
)
Model's Field Calculator Algorithm dialog window:

The Model and attribute tables of input and resulting output layers: after running the model, only the first 49 features ($id<50) are kept and the field id_new with aggregated id values is added:
