I read that the second largest eigenvalue of a graph is always positive except for specific classes of graphs, i.e the graphs that have second largest eigenvalue smaller than zero are fully characterized.
I was not able to figure out this question completely by browsing the web and looking at papers I found.
Any reference or full answer would be of great help.
The result you're looking for, from the unfortunately-not-online paper "Some properties of the spectrum of a graph" by J.H. Smith (1970), is the following:
I found a proof of this as Theorem 6.7 in Spectra of Graphs: Theory and Application by Cvetković, Doob, and Sachs.
Proof, part 1. Here, we show that all graphs not of this form have at least two positive eigenvalues. We ignore isolated vertices, since these just contribute eigenvalues of $0$ to our graph, and let $G$ be the subgraph where all of these are removed.
Complete multipartite graphs are precisely the ones in which the relation of non-adjacency between vertices is transitive. If this is not true of $G$, then there must be vertices $x,y,z$ such that $\{x,y\}$ and $\{y,z\}$ are non-edges, but $\{x,z\}$ is an edge. Since $y$ is not isolated, it has a neighbor $w$, and by casework on $w$'s possible adjacencies to $x$ and $z$, we conclude that $G$ must have one of the following as an induced subgraph:
Each of these has two positive eigenvalues $\mu_1$, $\mu_2$ and by the interlacing theorem, $G$ must have two positive eigenvalues $\lambda_1 \ge \mu_1$ and $\lambda_2 \ge \mu_2$. (Actually, the worst case is the third graph, and we can compute that $\mu_2 > 0.3111$ in that case, getting a more specific lower bound on the second eigenvalue.)
Proof, part 2. Here, we show that all complete multipartite graphs have only one positive eigenvalue. For this, the authors of Spectra of Graphs cite a characteristic polynomial calculation which can be found in Cvetković's Ph.D. thesis (possibly in Serbian). You can find out more about the spectra of complete multipartite graphs from Esser and Harary (1980), if you really want to. But we don't actually need to know the full spectrum here, so there's a shortcut.
Let $\mathbf x$ be the eigenvector of an eigenvalue of a complete multipartite graph, with partition $V_1 \cup \dots \cup V_p$. Let $S_i = \sum_{v \in V_i} x_v$ and $S = S_1 + \dots + S_p$. The eigenvector condition says that if $v \in V_i$, then $\sum_{w \notin V_i} x_w = S - S_i = \lambda x_v$. In particular, when $\lambda \ne 0$, $x_v = \frac{S - S_i}{\lambda}$ is constant over all $v \in V_i$, and $S = S_i + \lambda x_v = (|V_i| + \lambda) x_v$.
Suppose $\lambda > 0$, and yet $\lambda$ is not the largest eigenvalue. By the Perron–Frobenius theorem, the eigenvector of $\lambda$ cannot have all its entries strictly positive (or all strictly negative). Negating $\mathbf x$ if necessary, we can find $v \in V_i$ and $w \in V_j$ such that $x_v > 0$ and $x_w \le 0$. Then $S = (|V_i| + \lambda) x_v > 0$, yet $S = (|V_j| + \lambda) x_w < 0$; a contradiction.
So the non-leading eigenvalues cannot be positive. In fact, this same argument shows that after the leading eigenvalue and some number of zero eigenvalues, the next eigenvalue is at most $-\min_i |V_i|$.