The area between two curves is equal to the integral of the difference between the "upper curve" and the "lower curve", so you have an incorrect sign in the second integrand.
The main problem is however that you are using symbolic expressions. That means MATLAB will try its very best to give you an exact answer, rather than an approximate one (numerical).
If you want numeric outcomes, use numeric methods:
result = ...
quadgk( @(x) line1(x) - line2(x), -1, xIntersection) + ...
quadgk( @(x) line2(x) - line1(x), xIntersection, 1 );
or
result = ...
quadgk(@(x) abs(line1(x) - line2(x)), -1, +1);
for short :)
I believe integral
is the function of choice in newer versions of MATLAB ( > R2010a), but I can't test this.