It might be able to run, but the performance is just so subpar that Google feels uncomfortable releasing it. I doubt it would go over well if they release ICS for the N1 and the phone is barely usable.
CM, on the other hand, will appear on any device that somebody is dedicated enough to bring it to. So if somebody really wants ICS on the N1, then they'll do it.
The N1 has 512MB of internal space, and doesn't guarantee that the user has a MicroSD card inserted. Many Android apps (including Google-provided ones) only install to internal storage, and require janky hacks to work from the SD card. If it's impossible or impractical to update or remove ICS features to fit in a half-gig, it's impossible or impractical to port ICS to the N1.
Gingerbread runs fine on the N1 and ICS has no higher hardware requirements (per Google themselves). Other than driver updates for hardware acceleration, there's nothing about the N1 that really disqualifies it from being able to run ICS just fine.
Thus, what do you think cyanogen can do to make ICS properly run on the N1 hardware?