Changed the thread's title.
I hear what you're saying Marsopa, I actually used to think the same thing back in the day. Let's walk through the meaning.
No hay mal que por bien no venga.
Grammatically, we can change this to:
No hay mal que no venga por bien.
Now let's make it a bit more explicit:
No hay cosa mala que no venga sino por tu bien.
Now, if we try to translate that literally into English, it'll look kinda funny since we wouldn't normally use double negatives like that:
There is no bad thing that comes(that happens to you), that didn't come (or happen to you) for your benefit
We might normally turn that around and make it an affirmative sentence:
All bad things come/happen to your for your benefit/for a reason
Hope this explanation somehow helps you a bit