Если операция translated() выходит за пределы картинки, то она не производится. "Умное" Qt пытается сделать adjust для картинки (что-то типа волшебной палочки выделения в фотошопе), поэтому если картинка целиком должна быть трансформирована и результат этой трансформации больше размера картинки, то ничего не делается. Метод QPixmap::trueMatrix() возвратит матрицу, где все твои изменения (сдвиг по горизонтали на 50) сброшены в 0:
QMatrix(11=1 12=0 21=0 22=1 dx=50 dy=0) // до
QMatrix(11=1 12=0 21=0 22=1 dx=0 dy=0) // после
Примечательно то, что метод rotate() по каким-то причинам этим не страдает, увеличивает картинку до новых размеров, если она не умещается.
P.S.: QMatrix больше не поддерживается, вместо него нужно использовать QTransform (но это не решит проблемы).