when you do pulseIn(mhz19_SENSOR_PIN, HIGH, 1004000);it waits for the pin to go HIGH, starts timing, then waits for the pin to go LOW and stops timing and returns the length of the pulse in microseconds. it will also give up and returns 0 if no pulse starts within a specified time out.
==> are you sure you'll see every time a LOW to HIGH transition within the 1.004 second you listed ?