'Monoid' is a 'Semigroup' glued with a neutral element called 'mempty'. In the same idea, 'Zero' is a 'Semigroup' glued with an absorbing element called 'zero'.
Keep in mind that 'Zero' requires 'Semigroup'. If you have 'Semigroup' defined to work with 'Monoid', you might end up with no way to implement 'Zero'. That’s why the 'Semigroup' instance for 'Maybe' is confusing, because it relies on 'Monoid', and cannot be used with 'Zero'. 'Success' is the 'Zero' equivalent of 'Maybe' + 'Monoid'.