Let $L$ be a Lie algebra over an algebraically closed field and let $x\in L$. Prove that the subspace of $L$ spanned by the eigenvectors of $\operatorname{ad}x$ is a subalgebra.
Suppose the eigenvectors of $\operatorname{ad}x$ are $y_1,\ldots,y_n$ with eigenvalues $a_1,\ldots,a_n\in F$. So $[xy_i]=a_iy_i$ for $i=1,\ldots,n$. Let $z_1,z_2$ be in the subspace spanned by the eigenvectors of $\operatorname{ad}x$. Suppose $z_1=b_1y_1+\ldots+b_ny_n$ and $z_2=c_1y_1+\ldots+c_ny_n$. We must prove that $[z_1z_2]$ is a linear combination of the $y_i$'s.
We have $[z_1z_2] = \sum_{i\neq j}b_ic_i[y_iy_j]$. What then?
As PJ Miller suggests in his question, let $y_k$ be the eigenvectors of $\mathrm{ad}_x:L \to L$, thus
$\mathrm{ad}_x(y_k) = a_ky_k$,
where the $a_k \in F$. Consider the Jacobi identity for the bracket operation on $L$:
$[x, [z, w]] + [w, [x, z]] + [z, [w, x]] = 0$,
which holds for all $x, z, w \in L$. This clearly may be re-written as, using the skew-symmetry of the bracket, $[w, x] = -[x, w]$, etc.,
$[x, [z, w]] + [w, [x, z]] - [z, [x, w]] = 0$,
or
$\mathrm{ad}_x([z, w]) + [w, \mathrm{ad}_x(z)] - [z, \mathrm{ad}_x(w)] = 0$
now taking $z = y_i$ and $w = y_j$ we have
$\mathrm{ad}_x([y_i, y_j]) + [y_j, \mathrm{ad}_x(y_i)] - [y_i, \mathrm{ad}_x(y_j)] = 0$,
and using $\mathrm{ad}_x(y_k) = a_ky_k$ this becomes
$\mathrm{ad}_x([y_i, y_j]) + [y_j, a_iy_i] - [y_i, a_jy_j] = 0$,
which after a little re-arranging using linearity of the bracket operation yields
$\mathrm{ad}_x([y_i, y_j]) = -[y_j, a_iy_i] + [y_i, a_jy_j] = -a_i[y_j, y_i] + a_j[y_i, y_j] = (a_i + a_j)[y_i, y_j]$,
which in fact shows that $[y_i, y_j]$ is an eigenvector of $\mathrm{ad}_x$ with eigenvalue $a_i + a_j$. Thus, $[y_i, y_j]$, being an eigenvector of $\mathrm{ad}_x$, is clearly in the span of the set of eigenvectors! QED!!!
Added in edit: The above argument clearly shows that the OP's $[z_1, z_2]$ is in the span of the set of eigenvectors of $\mathrm{ad}_x$!