LINQ query that filters elements from a list of object
You can simply combine the conditions inside the FirstOrDefault() like  

PersonResultList = PersonResultList
    .Where(pr =&gt; PersonList
                    .FirstOrDefault(p =&gt; pr.PersonId == p.PersonId 
                                         &amp;&amp; p.Gender == "female") != null );  


Because I only changed your existing code, it didn't came to my mind what Nikita Brizhak commented here .  


  You should probably use Any instead of FirstOrDefault  


So let us change the code to  

PersonResultList = PersonResultList
        .Where(pr =&gt; PersonList
                        .Any(p =&gt; pr.PersonId == p.PersonId 
                              &amp;&amp; p.Gender == "female")); 


This is based on the assumption that for each entry in the first list there will be only one entry in the second list.