Why not explain your more complicated query and see if it can be combined as in Horizon88's suggestion?
Other than that, it looks like you are merging the wrong arrays. Instead of merging the rows from the first result set with the rows from the second result set, you are merging the first row of the first result set with the first row of the second result set.
If you do not go for Horizon88's suggestion (which would be better), then you want something along these lines instead:
$query1 = "select * from products where product_type_id = 1";
$result1 = mysql_query($query1);
$data1 = array();
while ($row = mysql_fetch_assoc($result1)) {
$data1[] = $row;
}
$query2 = "select * from products where product_type_id = 2";
$result2 = mysql_query($query2);
$data2 = array();
while ($row = mysql_fetch_assoc($result2)) {
$data2[] = $row;
}
$combined_data = array_merge($data1, $data2);