With a lower bound of zero, if the population mean value is zero, it must also have variance zero.
So if any of the observed values are non-zero, the data are inconsistent with the population mean being zero.
If all of the observed values are zero, the data are as consistent as they can be with the population mean being zero.
If you're not to always reject or always fail to reject, you would therefore be best off to adopt the rejection rule: "reject if any of the observed values are non-zero".
This is not a test where you get to choose your significance level. The actual type I error rate will be zero, since if the null hypothesis is true you cannot observe any non-zero values.
(However, under various specific alternatives you could perhaps compute the power of such a test.)
So if, as your question suggests, you have some non-zero data, your data are not consistent with a mean of 0; they can only be consistent with a mean greater than 0.
If you are prepared to call a population with some nonzero values somehow adequately close to zero, you might want to consider an equivalence test; in this case it would result in a one-side hypothesis test that would not reject some sample cases with non-zero values in them; you would need to specify what constituted equivalence for your purposes (in essence, what population characteristics are consistent with being called "effectively zero").