Here's the corrected version:
Erlang and Elixir. They are functional, but don't care if you do IO or any other side effect in the middle of a function.
That said, I wouldn't call this approach "imperative but functional". I would rather say functional core and thin imperative/procedural outer layer. Similar response to the sibling comment. And considering this, I still see functional and imperative at odds.
But this is merely a difference in terminology, not in practice and how we solve problems.
I call such languages "pragmatic programming languages" :) They don't care about theoretical pureness, they want to get stuff done. And often that stuff is thing like "stick logging into the middle of a function" or "fire off an event to an external system".