Does a Timer ISR disable global interrupts?

I am working with MsTimer2 library and it calls an ISR every 100ms but from my testing, it seems that this also disables global interrupts on my Arduino UNO R3. Is this assumption correct?

Here is my Timer2 ISR:

void interruptFunc()
{
  interrupts();  //if this line is missing, then the code just hangs and nothing works!
  
  countTicks();
  
  PWM();
  
  mpu6050.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
}

I did a lot of trial-and-error and the culprit seems to be the mpu6050.getMotion6 function which requires global interrupts to be enabled for it to work, but it seems that when the Timer2 ISR is called, this disables the interrupts so they need to be re-enabled again within the ISR itself to get data from the MPU-6050. Am i correct in my conclusion?
https://www.arduino.cc/reference/en/language/functions/interrupts/interrupts/

I am working with MsTimer2 library and it calls an ISR every 100ms but from my testing, it seems that this also disables global interrupts on my Arduino UNO R3. Is this assumption correct?

Yes.

Three functions in the ISR. It does not look appropriately "short".

countTicks();
   PWM(); 
  mpu6050.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);

MS Timer2 has a ms resolution, and for a 200 ms interval, there is really no need to use a timer interrupt. If you use a software timer with micros() instead of millis() to call the functions its likely to be more accurate.

Do you know how to use the "Blink without Delay" method.?

DryRun:
I did a lot of trial-and-error and the culprit seems to be the mpu6050.getMotion6 function which requires global interrupts to be enabled for it to work, but it seems that when the Timer2 ISR is called, this disables the interrupts so they need to be re-enabled again within the ISR itself to get data from the MPU-6050. Am i correct in my conclusion?

Keep the ISR as short as possible by setting a flag in the ISR and then return to the loop() function. You test the flag status in the loop() function and then execute mpu6050.getMotion6() function. Note that when the program control returns to the mainline program (the loop() function), the global interrupt flag is automatically enabled.

volatile bool flag1 = false;
void interruptFunc()
{
   flag1 = true;
}

void loop()
{

   if (flag1 == true)
   {
      countTicks();
      PWM();
      mpu6050.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
      flag1 = false;
   }
}