They should heat up regardless of the outside temperature. You likely have a short or broken heating wire in the seat. Usually the broken wire is in the seat cushion. IIRC there are 3 circuits in the cushion. Remove the cushion from the car (very easy to do) and probe each circuit with a continuity meter (multimeter set to ohms) to find which circuit. You can pull the cover off the foam and usually spot the break by a small burn mark in the foam. There are several write ups that go into more detail if you search the forum.
2001 Bonneville SSEi (retired at 365,000 Kms.)
2014 Jeep Grand Cherokee Overland (yes, I know its not a GM)