This is occurring because you have not time-reversed the signal properly. The time reversal intended by your identity is for $X[n] = X[(N-n)_N]$ where the notation $(\cdot)_N$ means that you should take the result modulo $N$. In other words $X[0] = X[(N)_N] = X[0]$ doesn't change position.
For your example, you start with the finite-length signal $a = [1, 2, 3, 4, ... 9, 10]$. The true time reversal of $a$ is $a_r = [ 1, 10, 9, 8, ... 3, 2 ]$. But the python code results in simply reversing the order of the components without respect to their indices, thus the result is the signal $a_m = [ 10, 9, 8, 7, ... 2, 1 ]$.
The reason the first entry is the same in both cases is because it is simply the sum of the elements which is equal for all three signals $a$, $a_r$ and $a_m$.
Here is a function that will time reverse your signal.
def time_reverse(x):
xrev = [ x[0] ]
xrev.extend(x[-1:0:-1])
return xrev
So, you can add this function definition to the top of the file and replace the line
a_mirrored = np.array(list(-a[::-1]))
with the line
a_mirrored = -np.array(time_reverse(a))
Then your plots should match up fine.