In order to determine if the proof is correct or not let us contextualize a little by restating the proposition.
Let $X$ be a space. For any set $A\subseteq X$, let $L$ be the set of limit points of $A$. Then $L$ is closed.
To adhere to standard notation, we will use the notation $L=A'$ and call it the derived set of $A$. We will check for which $X$ the proof presented in the question stands. We will start with well-behaved spaces and move towards more general ones as far as we can go.
The proof, as it is written, holds true for $X=\mathbb{R}^n$, in fact, it holds for any normed vector space (assuming $|\cdot|$ is the norm on $X$). It's well written, clear and rigorous. (Maybe, I'd change the "Then there exists a sequence $(a_n)$ [...]" to "We'll show that there exists a sequence $(a_n)$ [...]" but that's me being picky).
As you asked in a comment, if $X$ is any metric space, then we have a problem: $a_n-\ell_n$ isn't defined (since there may be no algebraic operations). Furthermore, $|\cdot|$ isn't defined since $X$ may not have a norm. To fix both issues, in your proof write $d(x,y)$ whenever you wrote $|x-y|$ (where $d$ is the metric of $X$). Since every normed vector space is a metric space, this proof would be more general and still work for the cases previously mentioned.
If we wanna get more abstract, letting $X$ be any first countable space, makes the proof no longer work. There is no distance and therefore you can't impose that $a_n$ be at a distance of at most $1/n$ of $\ell_n$ (I imagine the proposition is till true though, haven't tried).
In regards of $X$ being complete or not, it doesn't matter. Doesn't play a role in your proof. Your proof stands true for the spaces already mentioned (metric, if you fix the detail) irregardless of $X$ being complete or not.