Hola pato12,
En lugar de usar str_replace, te recomendaría usar unset para borrar el registro, por ejemplo:
Código PHP:
session_start();
include('config.php');
$query = mysql_query("SELECT * FROM users WHERE nick='".$_SESSION['login']."'") or die(mysql_error());
$data = mysql_fetch_array($query) or die(mysql_error());
$sep=explode(',',$data['favorito']);
for($i=0;$i<=(count($sep));$i++){
if($sep[$i]==$vid and $si_no=="no")
unset( $sep[$i] );
}
echo implode( ",", $sep );
Saludos.