Why are Pigmen spawning on Slabs?
Slabs do not prevent mob spawning just by their existence. It depends on their positioning.
See this fine piece of art:
If you use top slabs (yellow) or double slabs it will count as normal block and allows spawning. Using slabs at the bottom half (grey) will prevent mob spawning as it is now considered a transparent block.