A.Quas already noted in his comment that ${\bf Z}[\omega_l]$ might contain a $2l$-th root of unity (he gave $l=3$ but even $l=1$ works...). But that's the only possibility: we show that the only algebraic integers $z$ in ${\bf Q}(\omega_l)$ satisfying $|z| = 1$ are the roots of unity in ${\bf Q}(\omega_l)$. More generally, if $K_+$ is any totally real field, and $K$ is a totally imaginary quadratic extension of $K_+$, then the only algebraic integers in $K$ satisfying $|z|=1$ are the roots of unity in $K$.
This result is surely well-known/standard, but it's easier to recite or reconstruct a proof than to track down a reference. Let $d = [K_+:{\bf Q}]$, so that $2d = [K:{\bf Q}]$; for example $d = \varphi(l)/2$ when $K = {\bf Q}[\omega_l]$. Now $|z|=1$ iff $z$ is in the kernel of the map ${\rm Nm} : z \mapsto z \bar z$ from $K^*$ to $K_+^*$. In our setting $z$ is assumed to be an algebraic integer in the kernel, so it is in the unit group of [the algebraic integers in] $K$, with inverse $\bar z$. But by the Dirichlet unit theorem both $K$ and $K_+$ have unit groups of rank $d-1$. Moreover the image of ${\rm Nm}$ has rank at least $d-1$ because it contains the squares of all units in $K_+$. Hence its rank is exactly $d-1$, and the kernel of ${\rm Nm}$ has rank zero, and therefore consists only of roots of unity, as desired.
EDIT: Thanks to David Speyer for the link to his answer to the same question on Stackexchange (http://math.stackexchange.com/questions/39856), using an alternative route via Kronecker's theorem (an algebraic integer $z$ is a root of unity iff every Galois conjugate of $z$ has absolute value $1$ in ${\bf C}$) instead of the Dirichlet unit theorem. This method too works in the general "CM" setting of a totally imaginary quadratic extension of a totally real field.

