On checking the validity of a large set of identifiers
Enter the names into table x.

The list of all "New names":

SELECT x.name
    FROM x
    LEFT JOIN gene  ON x.name = gene.name
        WHERE gene.name IS NULL;


gene should have an index on name.

I don't think it can be done with just an IN.