MiniZinc is a purely declarative problem description language. It's a way to describe a problem once, and feed it to different solvers easily. You can provide hints for the search, but there is no more control on the solving process.
Prolog is a "full" language. You can program any search strategy you want with it.
I'd recommend starting with MiniZinc first, as it's easier. If it's not enough and you need to customize the search strategy then once can move to Prolog, particularly a modern one with constraint support.
MiniZinc is a generic language and IDE for optimization problems. You can hook into a variety of solvers (LP, MILP, Nonlinear, and some kind of like Prolog). The solvers have to be able to read the the flatzinc file type that MiniZinc exports if they don't support native hooks.