Did you try it without casting? My experience is that ColdFusion preserves the datatypes from the original query.
Here is a solution but you'll end up adding another step to the process.
1). Run your first query.
2). Within CF, recreate the query using QueryNew, QueryAddRow, QuerySetCell.
3). Return the output of that query.
<CFSET var data="">
<CFQUERY NAME="data" DATASOURCE="#DSN#">
SELECT DISTINCT #TP#_quadTable.Brand
<!--- Add Blank Row (For No Filter) & Sort for CFSelect --->
<CFSET totalRows = (data.recordcount+1)>
<CFSET getBrandsFilter = QueryNew("Brand", "VarChar")>
<CFSET newRow = QueryAddRow(getBrandsFilter, totalRows)>
<CFSET temp = QuerySetCell(getBrandsFilter, "Brand", "Brand Filter", 1)>
<CFSET counter = 2>
<CFSET temp = QuerySetCell(getBrandsFilter, "Brand", Brand, counter)>
<CFSET counter = counter+1>
(You could probably use a cfoutput here, I'm using cfreturn as it's withing a cffunction tag.)
*Ok, you're saying where is my solution: Under Step 2, look at the second CFSET. you see where you're calling out the "VarChar", that is what is telling CF how to output and should keep your errors from happening. In that line, you'll end up calling your columns, then the type, so you might have
("City", "State", ZipCode", "VarChar", VarChar", VarChar")
Hope this helps.
Are you sure the error is coming from the QoQ, or is it from some code subsequently using the QoQ?
What's the exact error, including the context that it says it's occuring in, and the top of the stack trace?