Haskell has immutable variables (variables in the math sense) by default:
foo x y = x + y * 2
By default variables are not mutable cells.
Haskell also has mutable cells though, but you enable them explicitly:
> import Data.IORef (newIORef, readIORef, writeIORef)
> v <- newIORef 0
> readIORef v
0
> writeIORef v 7
> readIORef v
7
So, YES Haskell has true variables. But it does not use mutable variables by default.