If within one set there cannot be two identical values, then the difference in sets can be obtained by the following query:
SELECT payments_id, count(*), max(payments_limits_types_id) FROM payments_limits WHERE payments_limits_types_id IN (1, 2) GROUP BY payments_id HAVING count(*)=1
count(*) must be equal to 2 if there are two entries and therefore the value is in both sets. At the same time, for entries that are found only in one of the sets for max(payments_limits_types_id) it will be possible to understand in which.
If you only need the fact of a match, you can make select count(*) from (запрос_выше) A , which will yield the number of discrepancies
If there can be several identical payment_id in a group, then each of them should be reduced to one record and get the number of identical ones, and then do the same as above, additionally checking the numbers (if needed):
SELECT payments_id, max(cnt), min(cnt), max(payments_limits_types_id) FROM ( SELECT payments_limits_types_id, payments_id, count(*) as cnt FROM payments_limits WHERE payments_limits_types_id IN (1, 2) GROUP BY payments_limits_types_id, payments_id ) A GROUP BY payments_id HAVING count(*)=1 OR min(cnt)<>max(cnt)