Generally, we say "cry for someone (a person)" in the sense that we pity and feel sorry for that person.
For example, a famous song from "Evita" is "Don't cry for me, Argentina," meaning "don't feel sorry for me; don't bemoan my fate, Argentina."
I don't think we say "cry for a problem", however. You could say "cry over (something bad that happened)," such as "don't cry over spilled milk."
As for your second question, there is a big difference between (a) "don't cry for" and (b) "you don't have to cry for."
(a) is the negative imperative, used when you tell someone not to do something.
(b) however, means "it is not necessary to..." In other words, (a) is a command (a negative one) but (b) is a permission not to do something.