It's fine. The language isn't that large or huge, if you count out the OO part. It's what Haskell is partially based on, and it's not a bad language. Unlike Haskell, it's not purely functional, so you can have state if you want to. The syntax is a bit weird, but usable/readable. ML is a classic statically typed language with type inferrance, it supports closures, it has pattern matching, and a decent amount of base types on which you can build everything else. You should probably learn it, even if you won't use it much.
I have looked at it a couple of times, but it seemed too much like operator soup for my liking. That wouldn't bother a Haskeller, of course.
There's an OCAML version of the LLVM tutorial that may be worth skimming if you want to see some practical code.
I don't like it for lack of overloading. If you will suddenly decide to switch function argument from integer to float, enjoy tons of your "+ expects Int, Float found" errors. This is big no-no to me.