Should I repeat UNIQUE constraint on similar multi-index?
Case 1  If you need to avoid both (1,2) and (2,1), then nothing in the Question will prevent that form of "dup".

To do that, always store the LESSER() value in id1 and the GREATER() in id2.  Then UNIQUE(id1, id2) prevents dups.

Meanwhile, do a similar sort of the two values when doing a lookup.

Then you have only the one UNIQUE key -- which may as well be the PRIMARY KEY.  Now you have


Uniqueness constraint that works
Fewer indexes
Only need to do one lookup, not two


etc

Case 2  If (1,2) and (2,1) can coexist, then the order of the ids presented to the table is important.  Probably all you need is 

PRIMARY KEY(id1, id2)


If you have something like WHERE id1 BETWEEN .. AND .. AND id2 = 7, then you would also need

INDEX(id2, id1)


My Cookbook covers most of these simply possibilities.