There are two possible issues here:
The first is that if your 'if' statement is never being reached (groundInfo.Collider == true) then of course your enemy just keeps walking in the direction they're going and never turns around. I highly suspect this is the case. Your ground collision logic should have no bearing on your 'turning around' logic.
The second is that if your 'if' statement is always being reached (groundInfo.Collider == false) then since Update is called rapidly in succession, on the first call your code says "Oh, you're moving right? Well.. turn around!" and on the second call your code says "Oh! You're moving left? Turn around!" So every time you update you are just having them turn around. I would expect this to result in them "jiggling" rather than being just stuck to the wall, but I don't see the code here that actually modifies their position.
How to get more responses
We have no context as to what class is holding this Update function. Is this "transform" you're modifying the enemies' vector? Is this vector a member of the enemies' class?
Also, I can guarantee you haven't run your code in a debugger (or at least, with breakpoints) and as such I should be loathe to assist you. Run your code in a debugger so you can see which lines of code you're actually hitting. It's a good possibility that your whole if-statement is being skipped and if you're going to be writing software much in your life you need debugging as one of your top skills (if not the top skill!)
To fix this you need to test something more robust like "If I'm touching the wall AND I'm facing the wall, turn around instead"; because currently it's an infinite loop that says "If I'm touching the wall, turn around."
Additionally you need to disassociate your ground-collision logic from your 'turn around' logic.
Finally, I'd also get rid of the extraneous if statement altogether as you are doing the same thing in each case. Something more like:
movingRight = !movingRight;
transform.eulerAngles.Y += 180;
You want as few if-statements in code as you can possibly manage. Every if statement is a case you have to test for and thus more difficult to validate is working properly. It's also harder to validate by eye.
What's more? Every if-statement you have in your code is a possible bad-branch prediction which can cause immense slowdown in your problem; as if a bad-branch is predicted it can result in invalidating the cache lines that were associated with that branch. See here for some information on bad prediction. All you really need to know is that you should be in the habit of questioning if/how to remove any 'if' statement you write. Some are required, but the less the better.