If I understand your question (and I may not), the Serial.print does not set any variables it only prints out a line on the monitor when the function is called and the code doesn't show any Serial.println when the temperature is in the mid range.
If you had used a variable such as "bool Heat_on" and set that variable to the current state of the heating relay each time it changed you would have been able to use
if( Heat_on) Serial.println("Heat Relay: On");
else Serial.println("Heat Relay: Off");
If heat_set = 36 and temperature8 = 37 then of course nothing will print and no digitalWrite will take place. However, what the initial position of the relay_4 pin is before the if statements shown has not been revealed and maybe the cause of the confusion?