2000 Denali is GMT400 or "OBS" with a 5.7 SBC Vortec. No cabin filter.
If it looks like the body style of
@SilverSport or
@Fless Avatar's, then it's a GMT800 or "NBS" with a 5.3 or 6.0 Vortec which is actually LS-based engines. Does have cabin filters on the 00-02 generation.
Given what you have said, I would try taking readings of the heater hoses going into the cabin with an IR thermometer, or just simply touch the lines using caution. One should be pretty hot, and the other less. If both are hot, that means the heat exchanging is not occurring inside the cab. Figure out why. Or there's coolant flow issues. If neither are hot, then may have coolant flow issues also (pump not circulating hot coolant through the lines).
On the LS-based engines, they are designed with the little crossover pipes that pretty much self bleed if you open up the coolant system. However, on the SBC, you can trap air pockets and you have do some strange thigs like raising the front of the engine or something like that. They sell a funnel with adapters that screw into the radiator cap. Had to do it on my beater K3500 SBC when I replaced the radiator. I've never had to use it on the LS engines. Just run the heater full blast and flip the throttle a few times with the cap off and that's it: you'll see air bubbles coming up on the reservoir tank.
You haven't replaced a water pump, radiator or thermostat, have you? Or what is the history with the truck? You just bought it? Or was the heater working well at some point and then it stopped working?