For both cases, the price is being generated by the zen_get_products_display_price function in /includes/functions/functions_prices.php. When the price is free, it's adding an extra <br /> before the price
Code:
// If Free, Show it
if ($product_check->fields['product_is_free'] == '1') {
if (OTHER_IMAGE_PRICE_IS_FREE_ON=='0') {
$free_tag = '<br />' . PRODUCTS_PRICE_IS_FREE_TEXT;
} else {
$free_tag = '<br />' . zen_image(DIR_WS_TEMPLATE_IMAGES . OTHER_IMAGE_PRICE_IS_FREE, PRODUCTS_PRICE_IS_FREE_TEXT);
}
}
Although you could change this core file to remove those br tags that you don't want, I'd suggest simply adding to the stylesheet definition:
Code:
#featuredProducts > .WickedOne br+br, #productprices > br { display: none; }