Showing linear-phase frequency response when only real part is known
You have two kinds information in the question:


The system is causal
The real part of the Frequency response is given.


Now, (repeating the steps from Wikipedia Entry on Causal Filter)


$h(t)$ is causal, i.e. $h(t)=0, t&lt;0$. 
Let $g(t)=\frac{1}{2} (h(t)+h^*(-t))$ which is non-causal, but has hermitian symmetry, hence its Fourier Transform is real. 
We know (due to causality) $h(t)=2u(t)g(t)$ where $u(t)$ is the unit-step function
Now, computing Fourier-Transform we get 
$$
H(\omega) = 2 \mathcal{F}(u(t))*G(\omega)
$$
where $*$ is the convolution operator. 
Now, we can express this as
$$
H(\omega) = \left(\delta(\omega)-\frac{j}{\pi\omega}\right)*G(\omega)=G(\omega)-j\mathcal{H}(G(\omega))
$$
where $\mathcal{H}(G(\omega))$ is the Hilbert Transform of $G(\omega)$. Since we know that $G(\omega)$ is real, $G(\omega)$ equals the real part of $H(\omega)$. Then, $\mathcal{H}(G(\omega))$ is the imaginary part of $H(\omega)$. 


So, to get the imaginary part, you need to calculate the Hilbert Transform of $1+\cos(\omega)$ which is given by

$$
\mathcal{H}(1+\cos(\omega))=\sin(\omega).
$$

Accordingly, the phase of your system is given by

$$
\phi(\omega) = \tan^{-1}\left(\frac{-\sin(\omega)}{1+\cos(\omega)}\right)
$$

Now, if we calculate the derivative regarding omega, we need to get a constant for a linear phase filter:

$$\frac{\partial \tan ^{-1}\left(\frac{-\sin (x)}{\cos (x)+1}\right)}{\partial x}=-\frac{\frac{\cos (x)}{\cos (x)+1}+\frac{\sin ^2(x)}{(\cos (x)+1)^2}}{\frac{\sin ^2(x)}{(\cos (x)+1)^2}+1}=-\frac{1}{2}$$

So, this shows that you have indeed a linear-phase system.

Your way with the group delay is also correct, once you have the imaginary part of your $H(\omega)$ obtained from its Hilbert Transform.