OK, entiendo.
Pero entonces ¿por qué usas rutas distintas aquí?
Código PHP:
imagejpeg($imagennueva, $_SERVER['DOCUMENT_ROOT']."/".$directorio);
Ahí se nota claramente que no es la misma ruta que:
Código PHP:
$subir_imagen = @move_uploaded_file($_FILES['imagen']['tmp_name'],$directorio."nueva_imagen.jpg");
En una usas DOCUMENT_ROOT (la linea del error) y en la otra no (dices que ahí no da error).