Let's start with an analysis of math atoms and spacings between them:
& = \int
The align environment adds an invisible empty subformula {} at the start of the column:
{} = \int
A subformula is acts as \mathord. The following line shows the math atoms with their type in the subscript position:
{}ord =rel \intop
There is a table in "The TeXbook" from Donald E. Knuth or in section "23.6.1 Classification of mu glue" in book "TeX by Topic" from Victor Eijkhout, which shows the spacing between math atoms.
The spacing information is put in the superscript position between the math atoms:
{}ord thick =rel thick \intop thin \intop
The same analysis for
& \hphantom{{}={}} \int
yields:
{}ord none
{ {}ord thick =rel thick
{}ord }ord
thin \intop
The \hphantom{...} acts as subformula.
As can be seen, there is an additional thin space (\thinmuskip) between \hphantom{...} and the following operator.
This space can be canceled by \!:
& \hphantom{{}={}} \! \int
Macro \! negates the thin space, it is defined in LaTeX as:
\def\!{\mskip-\thinmuskip}
An alternative is to remove the empty subformulas in \hphantom and convert the \hphantom to a rel atom as a visible = would have been:
& \mathrel{\hphantom{=}} \int
Analysis:
{}ord thick
{ =rel }rel
thick \intop
Example file with increased \thinmuskip to show the spacing problem more clearly:
\documentclass[a5paper]{article}
\usepackage{amsmath}
\begin{document}
\thinmuskip=40mu
\begin{align}
\texttt{\detokenize{& = \int}}\colon
& = \int \\
\texttt{\detokenize{& \hphantom{{}={}} \int}}\colon
& \hphantom{{}={}} \int \\
\texttt{\detokenize{& \hphantom{{}={}} \! \int}}\colon
& \hphantom{{}={}} \! \int \\
\texttt{\detokenize{& \mathrel{\hphantom{=}} \int}}\colon
& \mathrel{\hphantom{=}} \int
\end{align}
\end{document}
