You are converting dates without specifying a time zone, so your local one is assumed. After a little research at a guess you're in Brazil in the time zone of Sao Paulo, Campo Grande or Cuiba - Nov 2 2004 is when daylight savings changed in those locations and 0000 didn't exist as time jumped to 0100.
If you are just after the date conversion you can set the time zone to UTC (which has no daylight savings), add:
formatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];
and you won't get null
for that date.