MySQL has a "feature" called Hidden Columns. You can get one image per ad using the following:
SELECT
sun_classified_ads.ad_id,
sun_classified_ads.insertion_datetime,
sun_classified_ads.title,
sun_classified_ads.description,
sun_classified_ads.maker,
sun_classified_ads.model,
sun_classified_ads.location,
sun_classified_ads.price,
sun_classified_ads_images.filename_mini,
sun_classified_ads_images.size_attr_mini,
sun_classified_ads_images.description AS image_description
FROM sun_classified_ads
INNER JOIN sun_classified_ads_images ON sun_classified_ads.ad_id = sun_classified_ads_images.ad_id
group by sun_classified_ads.ad_id
Just a caution. There is no guarantee that this will return the first ad. There is not guarantee that the three fields from images will actually come from the same record (though in practice they do). However, this is probably the easiest way to get what you want.
The following query does do what you want, but is a bit more work:
SELECT
sun_classified_ads.ad_id,
sun_classified_ads.insertion_datetime,
sun_classified_ads.title,
sun_classified_ads.description,
sun_classified_ads.maker,
sun_classified_ads.model,
sun_classified_ads.location,
sun_classified_ads.price,
substring_index(group_concat(sun_classified_ads_images.filename_mini order by ad_image_id), ',', 1),
substring_index(group_concat(sun_classified_ads_images.size_attr_mini order by ad_image_id), ',', 1),
substring_index(group_concat(sun_classified_ads_images.description order by ad_image_id), ',', 1) AS image_description
FROM sun_classified_ads
INNER JOIN sun_classified_ads_images ON sun_classified_ads.ad_id = sun_classified_ads_images.ad_id
group by sun_classified_ads.ad_id
This assumes that ad_image_id
is a field that can be used to define the ordering of the images.