As a matter of fact, neither de nor à works here. You actually need pour, which goes with il y a to make a set phrase. The sentence means more or less the same as your suggestion with the relative clause (qui rient), but there is a small nuance:
Il y a toujoursdes genspourrire du malheur des autres. = You can always findpeople laughing at the misfortune of others. Il y a toujoursdes gens qui rient du malheur des autres. = There are alwayspeople laughing at the misfortune of others.