I assume it cranks normally... sometimes if the battery is low (batteries) and the engine cranks slow, there is not enough signal for the ECM to turn on the fuel... its sees such a poor condition and slow cranking that the fuel never comes on... . this of course would be nothing but connections and the life left in the batteries... .
IF there is no smoke, there is no fuel... Its easy enough when its warm after its ran to open the drain on the filter and catch what runs out... . if there is water there you will see it in the catch container... . and that should take care of it... .
If there was water in the fuel filter... plugging the truck in overnight or for 4 hours usually won't put enough heat into the filter system... the block heater is to warm the water and block to a point where the fuel will ignite sooner and I don't believe there is enough heat to melt any frozen water in the fuel filter assembly... . and I don't recall a water jacket in or around the filter...
You grid heaters might be working... a diesel will smoke when it doesn't have enough heat to ignite the fuel. . but if there is not enough fuel there is no smoke...
SO I think your back to a no fuel condition, and I'm going to guess that there is no water in the fuel... IF you have fuel that is not blended down it could gel, however you have to warm the whole truck, (tank - Lines) to get passed gelled fuel... To test for gelled fuel, you remove the fuel filter and check the fuel with a flashlight... . it should be clear as water... anything that looks like a cloud floating around in the fuel is gelled fuel... . BTW another term for gelled fuel is clouded fuel...
I'm still back to an ECM problem at this temperature not turning on the fuel... .
One last thought... low compression is the same as no heat, or no fuel... but since the engine seems to run fine and has normal power once started I can only assume that the compression is good... .
Hope this helps...