Since there is a constructor overload that takes an array of characters, this should work:
var bar = new string(foo.Select(x => x).ToArray());
Which pretty much eliminates the need for another constructor overload, as the proposed overload would essentially have to do the same thing.
Eric Lippert often discusses why certain features don't make it into the .NET Framework or the C# language. He says:
The answer is always the same: because no one ever designed,
specified, implemented, tested, documented and shipped that feature.
All six of those things are necessary to make a feature happen. All of
them cost huge amounts of time, effort and money.
In other words, every feature must have benefits that exceed those costs, and the .NET Team decided in this instance that the extra constructor was not worth it.
Further Reading
Best way to convert IEnumerable to string?
IEnumerable<char>
as a parameter. I suspect the implementation won't be significantly different that presented in his answer.