Serial.write stops working if not used?

However, if I include the line Serial.println("Reading sensor...") in the readSensor() function, then the program prints both lines in the Serial Monitor on my PC.

There isn't such a line! "Reading IMU..." there is however. I presume the time that line takes to execute is allowing the incoming serial data to arrive before you try reading it with your broken code - fix the use of available() and your code won't be sensitive to such things. How about defining a helper like:

int blocking_read ()
{
  while (Serial1.available () < 1)
  {}
  return Serial1.read () ;
}