Cita: me devuelve error: unexpected 'if' (T_IF), expecting ',' or ';' en línea 42 , que es donde comienza el IF.
No puedes poner un condicional dentro de un echo. Eso no es admitido ni es estético.
Cita: me pone para todas las imágenes que no existen , pero fuera del <tr> y luego dentro del <tr> justo lo que está antes del IF.
Seguramente te es por que no estas especificando la ruta correcta para las imágenes, según se desprende del código de tu primer comentario $registro2['Fotos'] solo retorna el nombre de la imagen.
Construye la ruta completa, por ejemplo con DOCUMENT_ROOT que devuelve el directorio raíz.
Prueba asi.
Código PHP:
// antes del bucle
// no se si esa es tu ruta exacta del directorio de imágenes, si no es así, adecua la ruta.
$raiz_img = $_SERVER ['DOCUMENT_ROOT'].'/mi1/registros2/vistas/imagenes/';
// dentro de bucle y fuera del echo.
if ( file_exists($raiz_img.$registro2['Fotos']) ) {
echo '<td><img src=imagenes'.'/'.$registro2['Fotos'].' border="0" width="150" height="100"></td>';
} else {
// aquí te faltan unos td para no romper la tabla
echo '<td>El fichero $nombre_fichero no existe</td>';
}
// aquí otro echo para imprimir el tr
echo '</tr>';