I am reviving this old thread, as I am currently having the same issue with QBO.
I know there is a setting, or combination of settings to allow this, as I saw it happen briefly, but I must have clicked something else to make it go away.
Think of a supervisor that needs to be rostered onto jobs. Their hours need to be tracked, and the cost of those hours calculated out, to ensure the job is profitable. However, they are on salary, so are paid a fixed amount each payroll. The hours for the jobs should be shown in the payroll, with a $0.00 figure against them.
I realise that I can delete the timesheet line in their payroll, and that is how I am getting around it at the moment. But there has to be a better way.
Thanks for your help.