ok - well the logic is flawed in the second example:
$images = explode(",", $images[0]['img1']);
$image_del = $images[$id];
unset($image_del);
$images = implode(",", $images);
Doesn't do anything because it just unsets $image_del - which you don't use - you repack up images - which you haven't changed!
Try putting some debugging in so you understand what is going on!:
$id = $_GET['id'];
echo('ID (array Column to be unset): '.$id.'<br />');
$images = explode(",", $images);
echo('Images in array format : <br />');
print_r($images);
unset($images[$id]);
echo('<br /> Images after unset:: <br />');
print_r($images);
$images = implode(",", $images);
echo('<br />Images in list format: <br />');
print_r($images);
See what that tells you...