Why are bulk multi-column key queries so slow in MySQL?
With "row constructors", you might get an optimization:

WHERE (col1, col2) IN (('v1', 'id1'), ('v2', 'id2'), ...)


But...  In old versions, that would work, but lead to a table scan.  I can't say specifically about the version you are running.

When you have this pair of indexes:

UNIQUE(col1, col2, col3)  -- (or plain INDEX)
INDEX(col1, col2)


there is no need for the latter, since the former can handle any queries that need it.

Perhaps the optimal way to write your query is

WHERE col1 in ('v1', 'v2', ...)
  AND (col1, col2) IN (('v1', 'id1'), ('v2', 'id2'), ...)


With that, it will use any index starting with col1 as a crude filter, then use the other part for the rest of the filtering.

Re "convert to an in method" --  MySQL started out as a clean and mean database; it did most of what anyone needed and did it reasonably well.  That was 90% of the development.  We are now into the other 90% of the development -- the "long tail".  Quite possibly some list somewhere includes "convert to an in method".  If so, it is being prioritized along with the thousands of other rare and obscure optimizations.  Feel free to file a 'feature request' at bugs.mysql.com; that is the way to add it to the list, or bump it up in priority.