If you are certain there will only be one class in the rest of eternity including by any external code, then it is indeed redundant. It might save you a tiny bit of performance to skip the interface, but maybe not (if the compiler is smart and figures out there's only one implementation).
In other cases, it may seem like there will only be one implementation now, but few projects grow in such a predictable way. In this case, I think it's easier to adhere to the principle than to refactor later (you can't refactor external code, for one). It also adds consistency.