Part 1 is still kind of nice; depending on what you need this for this may or may not be useful:
For a real polynomial, its roots are either real or form conjugate pairs. If you have two conjugate roots of unity
$$e^{\frac{2i\pi k}{n}},\ e^{-\frac{2i\pi k}{n}},$$
then the quadratic polynomial with them as roots is
$$P(x)=x^2-2\cos\left(\frac{2\pi k}{n}\right)x+1.$$
So, any real-coefficiented polynomial (whose roots are all roots of unity) has the form
$$(x+1)^m(x-1)^n\prod_{k=1}^N \left(x^2-2\cos\left(\frac{2\pi a_k}{b_k}\right)x+1\right),$$
where $m,n$ are nonnegative integers and all $a_k,b_k$ are positive integers (with $a_k<b_k$, if you wish).
For part 2, I mean, you can just pick the roots to be
$$x_k=e^{\frac{2i\pi a_k}{b_k}},$$
and your polynomial will be
$$\prod_{k=1}^N \left(x-e^{\frac{2i\pi a_k}{b_k}}\right),$$
but this probably isn't that useful. Another thing that may or may not be useful for either of these is that all polynomials with only roots of unity as roots have roots that all satisfy $x^M=1$ for some (possibly large with respect to the degree of the polynomial) integer $M$. In the case above this $M$ can be taken to be $b_1b_2\cdots b_k$. So, all polynomials with only roots of unity as roots are factors of $x^M-1$ for some $M$.
Best Answer
If there is a root in common, then using the Euclidean algorithm for polynomials to find the highest common factor either (a) gives a lower degree polynomial of which the root is a factor (so one of the polynomials at least is not minimal); or (b) tells you that the polynomials are the same.
(This makes assumptions about the admissible coefficients of the polynomials - the Euclidean algorithm has to apply, but this will almost certainly be the case in the circumstances you envisage)