Через QVariant этого сделать нельзя. Если бы вы читали документацию то подобного вопроса не возникло.
QBitArray QVariant::toBitArray () const
Returns the variant as a QBitArray if the variant has type() BitArray; otherwise returns an empty bit array.
На счет как сделать из qint8 QBitArray. Можно так:
	qint8 i8 = 0x24;
	const int bits = sizeof(i8) * 8;
	QBitArray arr(bits);
	for (int i = 0; i < bits;++i)
		if ((i8 >> i) & 1)
			arr.setBit(i);