I would say that everything should send a valid host field except some bots and other automatic scanners.
HTTP/1.0 (which did not have a hosts header) usage today is basically zero and again anything still using this is likely not something you want or need on your site.
So to me there is limited value to 301 or 302ing these requests and they may end up following that and hitting your site again wasting your resources.
Finally you're probably spending too much time worrying about this. Junk requests are part and parcel of running an public facing internet site and, for the most part, are better ignored than wasting time in them. If you are concerned then you can install a WAF to filter this sort of thing out.