grep -q returns a status code - the $? thing - of zero when it finds a pattern match and non-zero when it cannot find a pattern match. Otherwise grep returns a line of text.
Not a status.
Code:
grep -q 'something' somefile
if [[ $? -eq 0 ]] ; then
echo "found it!"
else
echo "not found."
fi