IN (1,2,3,4,5); or nearly equivalently = ANY(ARRAY[1,2,3,4,5]))
and a request for:
IN (1,3,5) / = ANY(ARRAY[1,3,5]) is going to get you nowhere with the planner.
The partition code does not execute your CHECK condition; it only tests to see if the query includes it explicitly. For example, if you have a split on "id % 100 = 59" for a table, then looking for id = 13059 does you no good; you have to search for "id = 13059 AND id % 100 = 59" to invoke the table exclusions.