Do you always need to clock out the old pixels when reading from a camera?
I suspect that the answer is quite simple: run readPixels() twice in quick succession. As it stands, if you don't run timing(), when you run readPixels() the 1401 has been sitting there integrating for some unknown (but very long) time, so of course your pixel values are saturated. So timing() resets the pixel integrators to zero, and then readPixels() can properly acquire data. However, running readPixels() the first time will have the same effect.

Of course, when you do this you'll need to disregard the first set of values produced by readPixels(), since they will be a uniform 1023.

So the answer to your title question is - of course.