a[1] - должна принять значение из a[2] (тоесть цифру 2)
а a[2] должна принять значение из a[1] (тоесть единицу)
Почему оба элемента массива приняли единицу? Где ошибка ?

У тебя написано for(int i = 1; i <= 10; i++), это значит что начальная точка отсчёта будет идти с 1.
int i =1 -это первый индекс цикла, с которого начнётся первая итерация.
1. У тебя первой итерацией идёт a[1] = 1;
2. потом проверяется условие в If (при первом проходе оно не выполняется) т. к. если бы ты прочёл книгу, знал бы что все переменные int без инициализации - по умолчанию равны 0.
3.ВЫВОДИТ 1
4. i++ (то есть i = 2 уже)
5. Новая итерация - i[2] = 2;
6. Проверяется условие в if - и оно выполняется т. к. i[1] < i[2] - истинно
7. j = a[1] (то есть j = 1)
8. a[1] = a[2] (теперь a[1] равно 2)
9. a[2] = j (теперь a[2] = 1)
10. ВЫВОДИТ 1
11. i++
11. Цикл повторяется.... и потом уже будут выводиться числа по порядку (3, 4, 5, и т. д.) без изменений т. к. по сути - изменения в if больше не повлияют на вывод елементов с высшим индексом.
p.s. ОБЯЗАТЕЛЬНО - прочитать книгу Хорстмана " Java основы - 1 том" или Эккеля "Философия Java".
Нумерация идёт с нуля вроде, как в сях.
При первой проверке значение a[2] в лучшем случае 0
Делай выводы
при первом проходе цикла if не выполняется и выдается 1 а при втором проходе цикла if выполняется и меняет 2 на 1 так и получается две 1
изучай циклы и операторы условия, надо знать как они работают.