This seems to be common on a lot of the 2005 and later Nissan trucks. When coolant level isn't low, it is usually air in the system or a bad "heater pump." The heater pump attaches to a bracket off of the firewall and mounts inline of the heater hose. There are two wires going to it. It is essentially a small, electric water pump used to help circulate the coolant through the heater core. Many people see it and assume it's an electric heater ****, used to stop the flow through the heater core, but it is not. Before replacing one, though, try purging the system.
I've had to drain coolant from these engines a number of times and I've never had any heat issues (or lack of heat) develop afterwards. I start by removing the radiator cap and the reservoir cap and setting the heat to full hot (if it's an R51 with rear heat, I'll set the rear heater to full heat, as well). I fill the radiator with coolant and install the radiator cap. I add coolant to the reservoir to the "MAX" line. I jack up the front of the vehicle as high as safely possible (if you work outside, you could park on a hill with the nose pointed uphill). I start the engine and use an adjustable hood prop rod between the seat cushion and the gas pedal and fix it to run at approximately 3000 RPM. I let the engine run about 10-15 minutes or until hot air is coming out of the vents. Then, I remove the rod, shut off the engine, lower the front end if jacked up and after it cools for awhile, top off the system. If the heater starts blowing cold air again, repeat the process (I've never had to repeat). It there still is lack of heat issues and the mode doors are working properly and the coolant is reaching proper temperature, then I would replace the heater pump.