Urk. You don't want HTTP_HOST. Part of any redirect's job is to regularize your domain name: with or without www, strip any extraneous ports, that kind of thing.
Double Urk:
RewriteCond %{REQUEST_URI} ^/blogs/+(.*)$
Do you get a lot of requests containing multiple slashes in this location? Well, maybe you do, but maybe you meant something else.
Most of your Conditions can go in the Rule itself, making everything run faster and smoother. So
RewriteCond %{REQUEST_URI} ^/blogs/([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12})
RewriteCond %{QUERY_STRING} ^lang=en_us
RewriteCond %{REQUEST_URI} ^/blogs/+(.*)$
RewriteRule .? https://%{HTTP_HOST}/mobile/blogs/BlogEntries?handle=%1 [R=301,L]
reduces to
RewriteCond %{QUERY_STRING} ^lang=en_us
RewriteRule ^blogs/+([0-9a-f]{8}-([0-9a-f]{4}-){3}[0-9a-f]{12}) https://www.example.com/mobile/blogs/BlogEntries?handle=$1 [R=301,L]
If you want to keep the existing query string, add a QSA flag. By default, a new query-- including a final blank question mark-- overwrites any existing one. And note that your anchor means that the rule will only work if "lang=en_us" is the very first thing in the query string.
But wait... I missed something earlier. Why are you redirecting from a (relatively) short pretty URL to a longer one with a query string? Wouldn't you rather be rewriting?