"He had lots to do."
Translation:Er hatte eine Menge zu tun.
It just sounds wrong to me - I don't think I'd use machen here, but only tun.
viel zu tun is a fixed expression, I suppose.
As for the opposite, compare:
- Da ist nichts zu tun. = There is nothing to do there. There is nothing there that needs to be done.
- Da ist nichts zu machen. = There is nothing anyone can do there. The situation cannot be changed.
tun often translates just to "do" -- when to use "to" in English and when to use zu in German are not the same, so sometimes English needs a "to" even if German does not.
For example, ich kann schwimmen und ich will schwimmen = I can swim and I want to swim. We can't say "I can to swim" or "I want swim" but in German it's just the infinitive in both cases.
So you can't say that the German infinitive always corresponds to a form in English with "to" or always to one without "to".
"Er hatte viel zu tun" is accepted, actually. If you happen to encounter this exercise again, please post a screenshot of this answer not working so this can be fixed.
Also, do note that Duo is rigid because it is a machine. It doesn't have the common sense that a human has and can only accept answers that its contributors program into it. Contributors do their best to accept all the right answers they can think of, but it's hard for even a human to think of all possible translations people might think of.