You are using apostrophes around the identifier, which makes it a string instead.
SELECT IsGeneric = CASE WHEN p.[GenericCatalogID] > 0 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END
FROM Storefront.Project p WITH(NOLOCK)
WHERE p.ID = @ProjectID;