The same problem is there under Linux. When using a datamodule with a MySQLDatabase and MySQLDataset and adding the datamodule to the uses clause, you still cannot get to it. The following works all right:
procedure TForm1.Button1Click(Sender: TObject);
begin
DataModule1.MySQLDatabase1.Open;
DataModule1.MySQLDataset1.Open;
end;
procedure TForm1.Form1Create(Sender: TObject);
begin
Datasource1.DataSet := DataModule1.MySQLDataset1;
end;