I don't understand the connection between type inference and advanced type systems. I don't see why Haskell or Standard ML or OCaml could not have existed without type inference. My only guess is that type inference might have been a trend in the 70s when ML first came out and the descendent languages simply kept that ability in addition to the primary task of the type system which was to ensure type safety. Or perhaps the type safety algorithm also easily gave the ability to infer types and it was included just because it was simple?
I was just rereading the wikipedia article on System F and it indicates that HM introduced serious limitations to the type system in order to get type inference working. This is pretty surprising to read.