Hello,
I looked at your page. The image is there and it loads correctly, it is just displayed with a width of zero pixels, which is why you see an empty light blue box.
The cause is the custom CSS of your website. It contains these rules, which were written for the classic product page layout, where the small thumbnails are placed in a row under the main image :
div.hikashop_main_image_div, div.hikashop_main_file_div { width:100%; background:#f3f8fe; padding:60px }
.hikashop_product_page div.hikashop_small_image_div { display:flex; gap:15px; width:100%; justify-content:space-evenly }
Your product page uses the "Modern" layout, which instead places the thumbnails in a narrow column next to the main image. With the CSS above, that column of thumbnails takes 100% of the width and there is no room left for the main image, which ends up at zero pixels wide. The light blue background you see is the background:#f3f8fe of that same CSS.
That is also why it only happens on the products where you can select a size : each size variant has its own image, so those products have several images and the thumbnails strip is displayed. A product with a single image has no thumbnails strip, so nothing takes the space.
Adding this to your custom CSS puts the main image back, I tested it on your page :
.hikashop_product_page .hikashop_modern_images .hikashop_global_image_div { flex-direction: column; }
You will need to clear the JCH Optimize cache afterwards, otherwise you will keep seeing the old combined CSS files.
The other possibility is to go in the HikaShop configuration, Display tab, and to change the "Layout on the product page" setting from Modern back to Default, which is the layout your CSS was made for.