alignat builds alternatively right and left aligned columns; your X_{25} falls in an even numbered column.
Thus this is not the best way to typeset these equations, because the spacing around the operation signs is uneven; better using an array:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array} % for extended syntax in array
\begin{document}
\begin{equation*}
\begin{array}{*{18}{@{}>{{}}l<{{}}@{}}}
X_{12}&+&X_{13}& & & & & & & & & & & & & & &=1 \\
& &X_{13}&+&X_{23}& & & & &-&X_{35}& & & & & & &=0 \\
X_{12}& & &-&X_{23}&-&X_{24}&-&X_{25}& & & & & & & & &=0 \\
& & & & & &X_{24}& & & & &-&X_{45}&-&X_{46}& & &=0 \\
& & & & & & & &X_{25}&+&X_{35}&+&X_{45}& & &-&X_{56}&=0 \\
& & & & & & & & & & & & & &X_{46}&+&X_{56}&=1
\end{array}
\end{equation*}
\end{document}
I build 18 columns, each left aligned; each will become ${}#{}$\hfil, where # denotes the actual cell entry. So if the entry is an operation symbol, say +, ${}+{}$ will leave the correct spacing around +. In case it's X_{12} the empty groups do nothing.

A different solution is with systeme; the setup is not much more complicated than as above, although it requires doing some substitutions; however the input is quite clearer:
\documentclass{article}
\usepackage{amsmath}
\usepackage{systeme}
\begin{document}
\begin{equation*}
\syssubstitute{%
{x_1}{X_{12}}%
{x_2}{X_{13}}%
{x_3}{X_{23}}%
{x_4}{X_{24}}%
{x_5}{X_{25}}%
{x_6}{X_{35}}%
{x_7}{X_{45}}%
{x_8}{X_{46}}%
{x_9}{X_{56}}%
}
\sysdelim..
\systeme{
x_1+x_2 =1,
x_2+x_3 -x_6 =0,
x_1 -x_3-x_4-x_5 =0,
x_4 -x_7-x_8 =0,
x_5+x_6+x_7 -x_9=0,
x_8+x_9=1
}
\end{equation*}
\end{document}

Update 2017
The new autoaligne package allows for a different solution. Unfortunately, empty slots should be denoted by + with no following space, but with some stretch we can also get a good alignment in the input: the trick is to locally set the space to an ignored character.
\documentclass{article}
\usepackage{amsmath}
\usepackage{autoaligne}
\begin{document}
\begin{equation*}
\catcode` =9 % ignore spaces
\autoaligne{%
X_{12}+X_{13}+ + + + + + + =1 \\%
+X_{13}+X_{23}+ + -X_{35}+ + + =0 \\%
X_{12}+ -X_{23}-X_{24}-X_{25}+ + + + =0 \\%
+ + +X_{24}+ + -X_{45}-X_{46}+ =0 \\%
+ + + +X_{25}+X_{35}+X_{45}+ -X_{56}=0 \\%
+ + + + + + +X_{46}+X_{56}=1
}
\end{equation*}
\end{document}

align-type environments are for aligning equations which consist of a left and a right part, like this: left&right&next equation.... So the&signs you used have different meanings to thealignenvironment, and your formula parts are interpreted, in turn, as left or right parts, and aligned accordingly (also note that every second operator has different spacing). – Stephan Lehmke Nov 12 '12 at 23:13