Gelmemesi gayet doğal, Querystring de groupid i bulamayınca boş ("") bir değer kullanıyor doğal olarak query şu şekli alıyor:
SELECT * From bms WHERE Marka='"&Request.QueryString("katid" )&"' and grup=''"
basit bi kontrolle halletmeni öneririm:
if Request.QueryString("grupid") <> "" Then sqlStr = "SELECT * From bms WHERE Marka='"&Request.QueryString("katid")&"' and grup='" & Request.QueryString("grupid") & "'" else sqlStr = "SELECT * From bms WHERE Marka='"&Request.QueryString("katid") & "'"