The closest thing Workfront provides to "assigned users" is "the people in your People tab" -- this is pretty close but obviously relies on you to keep a bit of governance on this. To educate yourself on this, try searching on listmethod projectusers in the community, as many people ask variations on this question. The closest one to your question looks like Richard's answer here:
https://experienceleaguecommunities.adobe.com/t5/workfront-questions/pulling-a-specific-job-role-via-text-mode/m-p/542622#M49327
If you ONLY want to show projects with a task that is complete, this is actually a filter (most users use an exists statement but even a collections filter might work here). You can search on words like exists and look for posts where the poster is talking about project reports. While this post isn't exactly about your question, it's something you can leverage: https://experienceleaguecommunities.adobe.com/t5/workfront-questions/create-project-report-filter-to-only-show-projects-that-don-t/m-p/612298#M55455
In it, lgaertner mentions this code -- here's how it applies
EXISTS:a:$$OBJCODE=TASK
EXISTS:a:projectID=FIELD:ID
EXISTS:a:status=INP
EXISTS:a:DE:<customFieldName>=abc123
First two lines are good to go as-is. They say "we are looking through tasks where the task ProjectID is the same as your project ID in your project report".
Next two lines have to change. Instead of Status = INP, you would insert whatever status key represents "complete" for your instance. Workfront comes with a default task complete key of "CPL" -- if you created custom statuses you would have more, and these would all be listed separated by tabs.
That final line filters for tasks where a particular custom field is a certain value. Instead of this line, you would be looking for more of a task name filter. Maybe something that looked like this:
EXISTS:a:name=name of my task
EXISTS:a:name_Mod=cicontains
(look for tasks with a particular name, and not case-sensitive)