Why does Times @@@ {{}} give {1}?

Times @@@ {{}} becomes {Times[]} so this question may be reduced to:

  • why does Times[] evaluate to 1?

This is the Default value of the Times operator:

Default[Times]
1

This is mathematically logical and programmatically efficient. This tutorial gives some examples:

  • Optional and Default Arguments

It seems you're trying to get all divisors of 120. 1 is a divisor of 120, so why would you want to drop it?

This is just one example of how "Subsets" result including $\emptyset$ is perfectly aligned with the things people use it for.