Does the -igan suffix serve the same function in the following words?
If so, what does it mean? Where does it come from?
Cardigan and hooligan probably come from the Welsh name Ceredigion and the Irish name Houlighan, respectively. The Welsh name Ceredigion means "Ceredig's land". There are a lot of Irish names that end in -gan, -han or -ghan. If we go by the etymologies I can find for Monaghan and Mulligan the -an is a diminuitive. So these two are not that closely related, but mulligan and hooligan may be, since they're both from Irish names ending with the same diminuitive.
I should point out that the Irish name O Huallachain can be spelled Houligan, Houlihan, or Houlighan in English, so these three suffixes indeed have the same origin.