You are correct. The average is using null's and lowering the expected average.
If you have two devices, you might want to update two different ThingSpeak channels.
If that is not possible, then MATLAB can help here. You can use MATLAB Analysis app to read in the field data, ignore the nulls, and then calculate the average. You can even use MATLAB to write the averaged data to a new processed channel and have it calculate the daily average each day by scheduling it with TimeControl.