Your small angle approximation is wrong and your Jacobian linearization is incomplete.
If $x_1 \approx 0$ then $\cos(x_1) \approx 1$ and so the system
$$
\begin{align}
\dot{x_1} &= x_2 \\
\dot{x_2} &= \cos(x_1) \\
\end{align}
$$
behaves close to $(0,0)$ approximately like
$$
\begin{align}
\dot{x_1} &= x_2 \\
\dot{x_2} &= 1 \\
\end{align}
$$
If you put this in matrix form:
$$
\begin{pmatrix}
\dot{x}_1 \\
\dot{x}_2
\end{pmatrix} = \begin{pmatrix}
0 & 1 \\
0 & 0
\end{pmatrix} \begin{pmatrix}
x_1 \\
x_2
\end{pmatrix} + \begin{pmatrix}
0 \\
1
\end{pmatrix}
$$
This is the "small angle approximation" and as you can see this is essentially the same as the Jacobian linearization. Remember that the Jacobian linearization of a nonlinear system $\dot{x} = f(x)$ at $x_0$ is
$$
\dot{x} = f(x_0) + A(x - x_0)
$$
where $A$ is the Jacobian matrix of $f$ at $x_0$. If you insert your system and your point you get:
$$
\begin{pmatrix}
\dot{x}_1 \\
\dot{x}_2
\end{pmatrix} = \begin{pmatrix}
0 & 1 \\
-\sin(0) & 0
\end{pmatrix} \begin{pmatrix}
x_1 - 0 \\
x_2 - 0
\end{pmatrix} + \begin{pmatrix}
0 \\
\cos(0)
\end{pmatrix}
$$
which is just:
$$
\begin{pmatrix}
\dot{x}_1 \\
\dot{x}_2
\end{pmatrix} = \begin{pmatrix}
0 & 1 \\
0 & 0
\end{pmatrix} \begin{pmatrix}
x_1 \\
x_2
\end{pmatrix} + \begin{pmatrix}
0 \\
1
\end{pmatrix}
$$
so the same as the small angle approximation.
Your mistake was that you neglected the fact that you linearized at a non-equilibrium point. Usually we linearize at an equilibrium and then $f(x_0) = 0$, so the constant term can be neglected.
But you linearize at $(0, 0)$ which is not an equilibrium point of your system because $\dot{x_2} \neq 0$ at $x_1 = 0$, so the system is not at rest at the origin.